home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************************
- * XENTRIX INTRO:1 *
- * *
- * CODED BY : TANGO *
- * PROGRAM STARTED:11/2/91 *
- * LAST EDITED :11/2/91 *
- * *
- *****************************************************************************
-
- section ste,code_c
- incdir df1:
- opt c-
- include gamemacros
-
-
- killsys
-
- move.l #$70000,a0
- move.l #10240,d2
- cloop:
- clr.l (a0)+
- dbf d2,cloop
-
- move.l #$60000,a0
- move.l #10240,d2
- dloop:
- clr.l (a0)+
- dbf d2,dloop
-
- jsr cyb_init ; initialise music
- move.l #newcop,$dff080
- lea custom,a5
- mouse:
- move.l vposr(a5),d0
- and.l #$1ff00,d0
- cmp.l #$00100,d0
- bne.s mouse
- bsr doform
- bsr clear
- bsr scroller
- bsr copy
- save_all
- jsr cyb_music
- return_all
- btst #6,$bfe001
- bne.s mouse
- ressys
- clr.l d0
- rts
-
-
- *****************************************************************************
- * BLIT THE COPPER BARS *
- *****************************************************************************
-
- blitbar:
- lea coltab(pc),a1
- lea dest+6(pc),a2 ; point to colour
- lea bltapth(a5),a3
- lea bltdpth(a5),a4
- lea bltsize(a5),a0
- lea bltcon0(a5),a6
- move.l #-1,d6
- moveq #0,d4
- moveq #6,d5
- add.l d1,a2 ; d1 holds position of bar
- blitwait
- move.w d4,bltamod(a5)
- move.w d5,bltdmod(a5) ; 6 (3words to next colour)
- move.l d6,bltafwm(a5)
- move.l a1,(a3) ; source
- move.l a2,(a4) ; dest
- move.l #$09f00000,(a6) ; minterm D=A
- move.w #32<<6!1,(a0) ; blitsize
- rts
-
-
- *****************************************************************************
- * MOVE THE COPPER BARS FROM A SINE TABLE *
- *****************************************************************************
-
- doform:
- move.l bsinptr(pc),a2 ; pointer to sine table
- move.l tabptr(pc),a0 ; pointer to table
- move.w (a0)+,d7 ; amount of bars
- barlooper:
- move.w (a0)+,d1 ; position in sinetab
- add.w d1,d1 ; even
- and.w #$fe,d1
- move.w (a2,d1),d1 ; got position
- asl.l #3,d1 ; times by 8 for next line down!
- move.w (a0)+,d2
- add.w d2,-4(a0) ; speed
- save_all
- bsr blitbar
- return_all
- dbf d7,barlooper
- rts
-
-
- *****************************************************************************
- * BLIT SHIFT SCROLL ROUTINE *
- *****************************************************************************
-
- scroller:
- move.l #-1,bltafwm(a5)
- tst.l scrolled ;have we scrolled 16 pixels?
- bne scrollon ;no
- move.l #15,scrolled ;yes, reset
- sub.l d6,d6
- lea table(pc),a4
- move.l scrptr(pc),a3
- move.b (a3),d6
- cmp.b #255,d6 ;end of scroll text?
- bne.s anotover ;no
- move.l #scrolltext,scrptr
- sub.l d6,d6
- rts
- anotover:
- sub.b #32,d6 ;convert
- add.w d6,d6
- move.w (a4,d6),d6 ;got letter
- add.l #1,scrptr ;update
- blitwait
- move.l #$09f00000,bltcon0(a5) ;minterm d=a
- move.l #font,a0
- add.l d6,a0
- move.l a0,bltapth(a5)
- move.w #38,bltamod(a5)
- move.w #46,bltdmod(a5) ;screen is 2 words bigger
- move.l #$70000,bltdpth(a5)
- move.w #16<<6!1,bltsize(a5)
- scrollon:
- blitwait
- move.w #0,bltamod(a5)
- move.w #0,bltdmod(a5)
- move.l #$70000,bltdpth(a5) ;coarse scroller
- move.l #$70002,bltapth(a5)
- move.l #$f9f00000,bltcon0(a5)
- move.w #16<<6!22,bltsize(a5)
- sub.l #1,scrolled
- rts
-
- copy:
- lea bltapth(a5),a1 ;source
- lea bltdpth(a5),a2 ;dest
- lea bltbpth(a5),a3 ;dest
- lea bltsize(a5),a4 ;blitsize
- lea bltcon0(a5),a6
- move.w #$3fe,d1
- move.w #22,d6
- move.w #46,d2 ;modulo
- move.w #16<<6!1,d3 ;bltsize
- move.l #$0dfc0000,d7
- move.l #$70000,d4
- move.l screen_base,d5
- move.l #-1,bltalwm(a5)
- move.w d2,bltamod(a5)
- move.w d2,bltbmod(a5)
- move.w d2,bltdmod(a5)
- add.w #12,sinptr+2
- and.l d1,sinptr
- lea sintab(pc),a0
- add.l sinptr,a0
- lea bltafwm(a5),a5
- brloop:
- move.w #$8000,d1 ;mask
- coploop:
- rept 16
- move.w d1,(a5)
- add.w (a0),d5
- move.l d4,(a1) ;source
- move.l d5,(a2) ;dest d
- move.l d5,(a3) ;dest b
- sub.w (a0)+,d5
- move.l d7,(a6)
- move.w d3,(a4) ;blitsize
- ror.w d1
- endr
- addq.w #2,d4 ;next along
- addq.w #2,d5 ;next along
- dbf d6,brloop
- lea custom,a5
- rts
-
-
- clear:
- eor.w #$4000,a1l+2
- eor.w #$4000,screen_base+2
- move.l screen_base,a1 ; dst
- blitwait
- move.l #$01f00000,bltcon0(a5)
- move.l #-1,bltafwm(A5)
- move.w #0,bltdmod(a5)
- move.l a1,bltdpth(A5)
- move.w #117*64+24,bltsize(a5)
- Movem.l a0-a6/d0-d7,-(a7)
- Movem.l RegFiller(pc),a1-a6/d0-d7
- move.l screen_base,a0
- add.w #10368,a0
- Rept 93
- Movem.l a1-a6/d0-d7,-(a0)
- Endr
- Movem.l (a7)+,a0-a6/d0-d7
- Rts
- RegFiller
- Dcb.l 16,0
-
-
- scrolled:
- dc.l 15
- scrptr:
- dc.l scrolltext
- scrolltext:
- DC.B 'THIS IS THE STORY OF THE TIMELORDS '
- DC.B 'ONCE UPON A TIME THE LAMETURDS WANTED TO SWAP WITH SEPULTURA '
- DC.B 'THIS WAS FAIR ENOUGH NO PROBLEMS YET '
- DC.B 'SO THE MAN FROM DELMONTE SENT THESE GUYS SOME DISKS '
- DC.B 'THESE WERE FRESH FROM ANARCHY 91 AND WERE NOT SHIT '
- DC.B 'SO WE WAITED FOR OUR REPLY FROM THE LAMETURDS '
- DC.B 'AND WE WAITED AND OUR PACKAGE NEVER ARRIVED '
- DC.B 'THE TIMELORDS RIPPED US OFF BUT WE CAN HANDLE IT '
- DC.B 'A MESSAGE TO EVERYONE FROM MFD OF SEPULTURA UK '
- DC.B 'DONT SEND TO CHRIS IN EXETER COS HE DOESNT REPLY '
- DC.B 'IF THE TIMELORDS ARE READING THIS THEN DONT JUST SIT THERE '
- DC.B 'YOU COULD SEND US THE DISKS YOU OWE US '
- DC.B 'YOU COULD GIVE A REASON FOR NOT REPLYING '
- DC.B 'YOU COULD SEND US AN INTRO WITH AN EXPLAINATION '
- DC.B 'OR CAN YOU NOT CODE PROBABLY NOT '
- DC.B 'MEMBERS OF SEPULTURA TRAVEL THE COUNTRY FOLLOWING BWFC '
- DC.B 'IF WE ARE IN DEVON THEN WE MAY JUST PAY YOU A VISIT '
- DC.B 'IF YOU ARENT IN BED OR DOING HOMEWORK THEN WATCH OUT '
- DC.B 'BECAUSE SEPULTURA ARE GOING TO GET YOU '
- DC.B 'THIS INTRO WILL GO ON A SEPULTURA COMP AND WILL BE SPREAD '
- DC.B 'SO PERHAPS YOU WILL HAVE LEARNT YOUR LESSON '
- DC.B 'DONT FUCK PEOPLE ABOUT BECAUSE PEOPLE DONT LIKE IT '
- DC.B 255
- even
-
-
- *****************************************************************************
- * NOISETRACKER PLAY ROUTINE TO BE INCLUDED *
- *****************************************************************************
-
- play_routine:
-
- include sfx/nt.s
-
-
- *****************************************************************************
- * NEW COPPER LIST *
- *****************************************************************************
-
- newcop:
- cmove color01,$f5f
- cmove bpl1mod,2
- cmove bpl2mod,2
- cmove bplcon0,$1200
- cmove diwstrt,$2c81
- cmove diwstop,$2cc1
- cmove ddfstrt,$28
- cmove ddfstop,$d8
- cmove bpl1pth,$0007
- a1l cmove bpl1ptl,$1000
- a set 80
- dest:
- rept 170
- dc.b a,$09,$ff,$fe
- dc.w $180,$00 ; CHANGE THIS COL!!!
- a set a+1
- endr
- end_copper
-
-
- *****************************************************************************
- * CHARACTER TABLE *
- *****************************************************************************
-
- table:
- dc.w 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38
- dc.w (16*40),2+(16*40),4+(16*40),6+(16*40),8+(16*40),10+(16*40)
- dc.w 12+(16*40),14+(16*40),16+(16*40),18+(16*40),20+(16*40),22+(16*40)
- dc.w 24+(16*40),26+(16*40),28+(16*40),30+(16*40),32+(16*40),34+(16*40)
- dc.w 36+(16*40),38+(16*40)
- dc.w (16*80),2+(16*80),4+(16*80),6+(16*80),8+(16*80),10+(16*80)
- dc.w 12+(16*80),14+(16*80),16+(16*80),18+(16*80),20+(16*80),22+(16*80)
- dc.w 24+(16*80),26+(16*80),28+(16*80),30+(16*80),32+(16*80),34+(16*80)
- dc.w 36+(16*80),38+(16*80)
- even
-
- screen_base:
- dc.l $71000
- sinptr:
- dc.l sintab
- sintab:
- rept 3
- dc.w 200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
- dc.w 200*48,199*48,199*48,199*48,199*48,199*48,199*48,198*48
- dc.w 198*48,198*48,198*48,197*48,197*48,197*48,196*48,196*48
- dc.w 196*48,195*48,195*48,195*48,194*48,194*48,193*48,193*48
- dc.w 192*48,192*48,191*48,191*48,190*48,190*48,189*48,189*48
- dc.w 188*48,188*48,187*48,186*48,186*48,185*48,184*48,184*48
- dc.w 183*48,182*48,182*48,181*48,180*48,180*48,179*48,178*48
- dc.w 177*48,177*48,176*48,175*48,174*48,173*48,172*48,172*48
- dc.w 171*48,170*48,169*48,168*48,167*48,166*48,165*48,164*48
- dc.w 163*48,162*48,162*48,161*48,160*48,159*48,158*48,157*48
- dc.w 156*48,155*48,153*48,152*48,151*48,150*48,149*48,148*48
- dc.w 147*48,146*48,145*48,144*48,143*48,142*48,141*48,139*48
- dc.w 138*48,137*48,136*48,135*48,134*48,133*48,131*48,130*48
- dc.w 129*48,128*48,127*48,125*48,124*48,123*48,122*48,121*48
- dc.w 120*48,118*48,117*48,116*48,115*48,113*48,112*48,111*48
- dc.w 110*48,109*48,107*48,106*48,105*48,104*48,102*48,101*48
- dc.w 100*48,99*48,98*48,96*48,95*48,94*48,93*48,91*48
- dc.w 90*48,89*48,88*48,87*48,85*48,84*48,83*48,82*48
- dc.w 80*48,79*48,78*48,77*48,76*48,75*48,73*48,72*48
- dc.w 71*48,70*48,69*48,67*48,66*48,65*48,64*48,63*48
- dc.w 62*48,61*48,59*48,58*48,57*48,56*48,55*48,54*48
- dc.w 53*48,52*48,51*48,50*48,49*48,48*48,46*48,45*48
- dc.w 44*48,43*48,42*48,41*48,40*48,39*48,38*48,38*48
- dc.w 37*48,36*48,35*48,34*48,33*48,32*48,31*48,30*48
- dc.w 29*48,28*48,28*48,27*48,26*48,25*48,24*48,23*48
- dc.w 23*48,22*48,21*48,20*48,20*48,19*48,18*48,18*48
- dc.w 17*48,16*48,16*48,15*48,14*48,14*48,13*48,12*48
- dc.w 12*48,11*48,11*48,10*48,10*48,9*48,9*48,8*48
- dc.w 8*48,7*48,7*48,6*48,6*48,5*48,5*48,5*48
- dc.w 4*48,4*48,4*48,3*48,3*48,3*48,2*48,2*48
- dc.w 2*48,2*48,1*48,1*48,1*48,1*48,1*48,1*48
- dc.w 0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
- dc.w 0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
- dc.w 0*48,1*48,1*48,1*48,1*48,1*48,1*48,2*48
- dc.w 2*48,2*48,2*48,3*48,3*48,3*48,4*48,4*48
- dc.w 4*48,5*48,5*48,5*48,6*48,6*48,7*48,7*48
- dc.w 8*48,8*48,9*48,9*48,10*48,10*48,11*48,11*48
- dc.w 12*48,12*48,13*48,14*48,14*48,15*48,16*48,16*48
- dc.w 17*48,18*48,18*48,19*48,20*48,20*48,21*48,22*48
- dc.w 23*48,23*48,24*48,25*48,26*48,27*48,28*48,28*48
- dc.w 29*48,30*48,31*48,32*48,33*48,34*48,35*48,36*48
- dc.w 37*48,38*48,38*48,39*48,40*48,41*48,42*48,43*48
- dc.w 44*48,45*48,47*48,48*48,49*48,50*48,51*48,52*48
- dc.w 53*48,54*48,55*48,56*48,57*48,58*48,59*48,61*48
- dc.w 62*48,63*48,64*48,65*48,66*48,67*48,69*48,70*48
- dc.w 71*48,72*48,73*48,75*48,76*48,77*48,78*48,79*48
- dc.w 80*48,82*48,83*48,84*48,85*48,87*48,88*48,89*48
- dc.w 90*48,91*48,93*48,94*48,95*48,96*48,98*48,99*48
- dc.w 100*48,101*48,102*48,104*48,105*48,106*48,107*48,109*48
- dc.w 110*48,111*48,112*48,113*48,115*48,116*48,117*48,118*48
- dc.w 120*48,121*48,122*48,123*48,124*48,125*48,127*48,128*48
- dc.w 129*48,130*48,131*48,133*48,134*48,135*48,136*48,137*48
- dc.w 138*48,139*48,141*48,142*48,143*48,144*48,145*48,146*48
- dc.w 147*48,148*48,149*48,150*48,151*48,152*48,154*48,155*48
- dc.w 156*48,157*48,158*48,159*48,160*48,161*48,162*48,162*48
- dc.w 163*48,164*48,165*48,166*48,167*48,168*48,169*48,170*48
- dc.w 171*48,172*48,172*48,173*48,174*48,175*48,176*48,177*48
- dc.w 177*48,178*48,179*48,180*48,180*48,181*48,182*48,182*48
- dc.w 183*48,184*48,184*48,185*48,186*48,186*48,187*48,188*48
- dc.w 188*48,189*48,189*48,190*48,190*48,191*48,191*48,192*48
- dc.w 192*48,193*48,193*48,194*48,194*48,195*48,195*48,195*48
- dc.w 196*48,196*48,196*48,197*48,197*48,197*48,198*48,198*48
- dc.w 198*48,198*48,199*48,199*48,199*48,199*48,199*48,199*48
- dc.w 200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
- endr
-
-
- *****************************************************************************
- * COLOURS FOR BAR (NOTE BAR IS 34 LINES, HENCE 34 COLOURS!) *
- *****************************************************************************
-
- coltab:
- dc.w $000,$000,$100,$200,$300,$400,$500,$600,$700
- dc.w $800,$900,$a00,$b00,$c00,$d00,$e00,$f00
- dc.w $e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600
- dc.w $500,$400,$300,$200,$100,$000
-
-
- *****************************************************************************
- * BAR FORMATIONS! *
- *****************************************************************************
-
- tabptr:
- dc.l tab
- tab:
- dc.w 10-1 ; no of bars to blit
- dc.w 10,1 ; offset to sine tab and speed
- dc.w 20,1 ; offset to sine tab and speed
- dc.w 30,1
- dc.w 40,1
- dc.w 50,1
- dc.w 60,1
- dc.w 70,1
- dc.w 80,1
- dc.w 90,1
- dc.w 100,1
-
-
- *****************************************************************************
- * THE MEGA SINE TABLE FOR THE BARS *
- *****************************************************************************
-
- bsinptr:
- dc.l bsintab
- bsintab:
- dc.w 120,120,120,119,119,118,117,116
- dc.w 115,114,113,111,110,108,106,104
- dc.w 102,100,98,96,93,91,88,86
- dc.w 83,80,77,75,72,69,66,63
- dc.w 60,57,54,51,48,45,43,40
- dc.w 37,34,32,29,27,24,22,20
- dc.w 18,16,14,12,10,9,7,6
- dc.w 5,4,3,2,1,1,0,0
- dc.w 0,0,0,1,1,2,3,4
- dc.w 5,6,7,9,10,12,14,16
- dc.w 18,20,22,24,27,29,32,34
- dc.w 37,40,43,45,48,51,54,57
- dc.w 60,63,66,69,72,75,77,80
- dc.w 83,86,88,91,93,96,98,100
- dc.w 102,104,106,108,110,111,113,114
- dc.w 115,116,117,118,119,119,120,120
- even
-
-
- *****************************************************************************
- * BINARIES *
- *****************************************************************************
-
- font:
- incbin gfx/font.bin
- even
- cyb_data:
- incbin "sfx/mod.task iii"
- even
-
-